import axios from 'axios';

// 审核状态颜色映射（严格匹配图像规范）
const STATUS_STYLES = {
  pending: {
    bgColor: '#f5f5f5',    // 浅灰背景（待处理）
    textColor: 'rgba(0,0,0,0.85)', 
    borderColor: '#d9d9d9' // 灰色边框
  },
  approved: {
    bgColor: '#e6f7ff',    // 浅蓝背景（通过）
    textColor: '#1890ff', 
    borderColor: '#91d5ff'
  },
  rejected: {
    bgColor: '#fff1f0',    // 浅红背景（驳回）
    textColor: '#f5222d', 
    borderColor: '#ffa39e'
  }
};

// 审核阶段配置（包含图像中所有分类）
const APP_CATEGORIES = [
  '图形图像', '编程开发', '游戏娱乐', 
  '资讯阅读', '效率办公', '金融理财', 
  '网络应用', '影音编辑', '社交通讯',
  'AI应用', '教育学习', '系统工具'
];

/**
 * 获取应用审核进度（支持自动重试）
 * @param {string} appId - 应用ID 
 * @param {number} retryCount - 当前重试次数
 */
export const fetchReviewProgress = async (appId, retryCount = 0) => {
  try {
    const { data } = await axios.get(`/api/v1/reviews/${appId}`, {
      headers: { 'X-Deepin-Design-Language': 'v3' },
      timeout: 5000
    });

    return data.stages.map(stage => ({
      ...stage,
      category: APP_CATEGORIES[stage.categoryId] || '其他类别', // 匹配图像分类
      style: STATUS_STYLES[stage.status] || {}
    }));

  } catch (error) {
    if (retryCount < 3) {
      console.warn(`[重试 ${retryCount+1}/3] 审核状态获取失败`);
      await new Promise(resolve => setTimeout(resolve, 2000));
      return fetchReviewProgress(appId, retryCount + 1);
    }
    throw new Error('状态加载失败: ' + (error.response?.data?.message || '网络异常'));
  }
};

// 兼容旧版API（逐步废弃）
export const fetchReviewStages = fetchReviewProgress;